【レポート】[Startup Talks]漁業xIoTで実現する可視化とサスティナビリティ #AWSSummit
はじめに
こんにちは、おおはしりきたけです。 みなさん AWS Summit Online 楽しんでいますでしょうか。
本記事は [Startup Talks]漁業xIoTで実現する可視化とサスティナビリティ の活用となっています。
セッション概要
スピーカー
- 株式会社ライトハウス
概要
これまで情報伝達が少なかった漁業において、IoTを活用したコミュニケーションの活性化による漁業の効率化とサステナビリティ
セッション視聴のリンクは こちら。
セッションレポート
ISANAについて
ISANAのターゲット
- 漁業者様向けのサービス
- コアターゲットは、日本、およびアジアのまき網、船びき網漁業者
- ISANAは、複数の船で船団を組んでいる方々に提供しているサービス
複数の船で船団を組んでいる事業者様の課題と解決方法
- 課題
- 魚群探知機、ソナーなど各種機器の情報を無線で伝えるのが難しい
- 無線だけでは、コミュニケーションが不十分
- 解決方法
- ISANAでは、「ISANAデバイス」と「タブレット端末」を使用
- これにより、船団間で、魚群探知機やソナーなど様々なデータをリアルタイムでインターネットを使い、記録、共有することができる
ISANAの機能について
マップ機能画面
GPS情報を用いて、航跡をマップ上にプロットし、今現在どこにいるのかという情報を一目でわかる。
- 各船の航跡や登録ポイント、現在地をタブレット上で可視化、記録
- 航跡上の魚群探知機やソナーの画面を地図上に記録
- 取得した画像データは日付ごとに記録して見返しも可能
魚探・ソナー画面共有機能
一番使われている機能で、魚探やソナーの情報がリアルタイムで見ることができる。
- 漁船の魚探、ソナーなどの画像を一覧で可視化
- 複数の船でお互いに共有することも可能
- マップと同時に見ることも可能
船上画像共有機能画面
共有したい船に船上カメラを設置し、各線の船上の様子をリアルタイムで見ることが可能
ISANAのAWSアーキテクチャ
プロトタイプ
- ALB、EC2とAuroraのシンプルな構成で構築していた
- 高頻度にデバイスから各種情報が送られてくるが、デバイスからAuroraへの書き込み、タブレットからの読み込みが頻繁に発生
- EC2(c4.2xlarge)、Aurora(db.r5.2xlarge)の大きめのインスタンスを提供していたが、思った以上にパフォーマンスがでないのと、AWS利用費も大きくなり、サービス提供をすればするほど赤字になってしまうアーキテクチャになっており、サービス提供するにあたりアーキテクチャを見直した。
現在運用されているアーキテクチャ
- タブレットとデバイスで経路を分けた
- デバイスは書き込み専用のルート
- タブレットは読み込み専用のルート
- デバイス側の処理
- Fargateで起動しているAPIに対してデバイスから書き込みリクエストを送る
- Kinesiss Data Streamに入ったデータをもとに、LambdaがDynamoDBに書き込みを行う
- タブレット側の処理
- Fargateで起動しているAPIに対してタブレットから読み込みリクエストを送る
- APIからDynamoDBを参照
- パフォーマンスは、秒間2000リクエストでもパフォーマンスは変わらず提供できる
- 書き込みと読み込みの頻度が高かったので、RDSでは厳しくDynamoDBにした
- ここ1年弱の期間で数十億レコードのデータが増えている
- Kinesiss Data StreamもそのままDynamoDBに書き込むと負荷になってしまうので、Lambda側で単位に分けて書き込みを行っている
- Auroraは、マップや画面共有でお気に入り機能があり、このような軽めのデータを利用するために利用している
AWS IoTを利用したデバイス管理
- デバイスが電源入って起動されると、API GatewayからLambdaが起動される
- AWS IotにThingがなければ、各種リソースを作成し、証明書も作成
- どのThingとどの証明書が対になっているのかをDynamoDBに保存
- 証明書自体はS3にPutする。デバイスは署名付きURLをもとにS3に証明書を取得しにいく
- 今はマネージドサービスで実現できるので、今後は切り替えていきたい
AWS IoTを利用したソフトウェアアップデート
- デバイスのアップデートについては、一括で全ての船にブロードキャストしてアップデートする方法と特定のユーザーにのみアップデートするという方法がある
- 特定の船にアップデートする場合は、管理画面から操作を行い、一部のデバイスのアップデートを実現している
BI/分析について
サステナ関連で漁獲の記録の機能も提供している
漁獲記録機能
- いつどこでどのような魚がどれくらい獲れたかを記録
- 創業中の魚探やソナーの画像と水揚げの成果を記録
- 各操業日の航跡と成果をかんたんに振り返ることも可能
BI/分析アーキテクチャ
- 可用性を高めるためにEKSのスポットインスタンスを稼働している
- ワークフローエンジンのAirfllowを活用し、データソースから取ってきた情報を加工して別のところに入れる
- Redashを利用して、分析用に作られたデータ参照をしている
- 分析系は、予め負荷を予測でき、スケールのタイミングも予測しやすいのでEC2のスポットインスタンスを利用して運用している
- これからは、この基盤をつかってMLなどにも取り組んでいきたい
所感
デバイスからの予測できない大量のリクエストが来る場合のアーキテクチャとして非常に参考になりました。用途に応じて適切なAWSサービスを使うことで、性能、費用など適切になりますし、マネージドサービスに任せることで、本当に必要な開発に集中することができ、さらなるサービスの向上につながると思いました。